﻿namespace IndustrialProgrammingProject.Rules
{
    /// <summary>
    /// Все комментарии в этом классе должны быть преобразованы в отдельные классы с примерами.
    /// </summary>
    class MoveToSamplesTempStore
    {
        // Опционные параметры - запрещены к использованию.
        // Опциональные, значит неявные. Все неявное, хитрое, заумное запрещено.
        // Затрудняют понимание, рефакторинг, модификацию кода.
        // Являются некотролируемым добавлением зависимостей.
        // Исключение - опбепринятые практики, созданные не вами.
        // Например современный подход реализации INotifyPropertyChanged с помощью CallerMemberName.
        // http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

        // Правила наименования.
        // 
        // Наименование должно однозначно говорить о том, для чего служит сущность.
        // Название должно быть локаничным и максимально коротким - до пяти семи слов.
        // Если название не получается сделать коротким, это хорошо!
        // Это говорит о том, что метод или класс нуждается в рефакторинге. Такая сущность плохо пахнет.
        // Метод должен служить одной цели.
        // Если метод служить нескольким целям, то они все должны быть отражены в названии.
        // Это хорошо, т.к. подчеркивает, что метод нужно разнести на несколько методов.

        // Стиль программирования как вид документации.
        // Правила наименования в C#
        // Запрет префиксов, поясняющих тип в назчании.

        // Борьба с глобальными состояниями.

        // Правила форматирования.



        // Наследование - инстроумет борьбы со сложностью. Польза, особенности, опасности, запреты.
    }
}
